home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
System Booster
/
System Booster.iso
/
Archivers
/
ModPack
/
ModPack.doc
< prev
next >
Wrap
Text File
|
1996-09-26
|
17KB
|
331 lines
ModPack V1.4b
-----------------
by Mike Coenen
INFO
This little assembler-program packs soudtracker-modules together with a
file containing additional information into an LHA-archive.
The program needs at least OS2.04, but it will run on every processor
of the 68000-family (that's not quite me, is it ?). In addition the
program 'LHA' is needed somwhere where you can reach it without having
to add a path (e.g. C:).
ModPack is ThinkWare. So if you use it frequently, you should think of
me...
A propos: I will NOT be held responsible for any damage or dataloss
caused in connection with ModPack!
SELECT FILES
As ModPack has to know which files to pack, you have to tell him somehow.
To do so, you have three choices.
You can call a file-requester by pressing the 'Add'-gadget and select the
desired modules (multiselect with SHIFT is allowed). You are also able
to drag icons directly into the ModPack window and drop them there (even
more than one, if you like). This would make more sense with large
numbers of modules, as you can show files without icons on the Workbench
as well. Third, you can do an ExtendedSelect. That means you click once
on the ModPack-icon, and then with the SHIFT-key held down click on all
files you want to be loaded. Do a double-click on the last icon (SHIFT
still pressed) so that ModPack is started and the files will be read.
If you want to select an entire directory, but it is unreachable from
Workbench because it lies in a fifth-level-subdirectory without any
icons or whatever, you don't have to 'Window/Show/All Files' all
directories. Just click 'Add', select the desired directory and press
'Add' in the file requester without selecting ANY file. Then the entire
directory will be analyzed. Note that by selecting entire directories
the pattern defined in the ToolTypes (or the default one) will be used
and NOT the one in the file requester. That's because I don't know how
to access it.
The selected files are then examined and, together with their size,
displayed in the ListViewGadget. If you want to add some modules to the
List later on, just repeat the procedure and the new files will be
attached at the end of the list. Don't care about the path - it doesn't
matter. In fact every file could be in an other directory, ModPack
handles it automatically.
The number of selected files can be seen in the bottom left hand corner
in the 'Cnt:'-TextGadget.
ModPack recognizes files crunched with the PowerPacker or the Imploder.
Such files will be marked in the ListViewGadet with a "P" for "Power-
Packer" or an "I" for "Imploder". The RealName will in such cases only
be "PP_x" or "IMP_x", where x is a number.
EDIT FILES
When you select an item from the ListViewGadget, some information will
become visible on the left side, as there are:
'RealName': This TextGadget displays the module's name. This is not the
filename but the 'real one' which is read from the file.
'Filename': Here, the filename of the arcive will be displayed. It will
be assembled from the RealName and the suffix '.lha'.
All spaces, colons, slashes, full stops, commas, and "_"s
(I dont't know what a '_' is called in english...) will be
thrown out, and the following character will be capitalized
(Ä, Ü, ö etc. treated correctly). 'live long,and_Prosper'
would therefore be converted into 'LiveLongAndProsper'.
'Composer': The Composer... The name will be extracted from the file's
comment which must have the following format:
COMPOSER^FROM^INFO
The character '^' operates as separator, where it is not
necessary for all three fields to be existent. Valid is for
example '^^Metal', what leads to an empty Composer- and
From-String, and to an Info-String containing 'Metal'. You
can enter 'Mike Coenen' as well, so that the Composer will be
'Mike Coenen' and the rest will be empty ('Mike Coenen^^'
will, of course, work too).
'From' : The source of the module (e.g. Demo xyz). This will be
extracted from the file's comment which must have the
following format: COMPOSER^FROM^INFO
'Info' : This field can contain many things, for example the kind of
music... The Info-string will be extracted from the file's
comment which must have the following format:
CMOPOSER^FROM^INFO
Except for the RealName you can edit everything, even the name of the
archive, which, in many cases, might be not quite like you want it.
But Attention! ALL INPUTS WILL ONLY BE ACCEPTED AFTER PRESSING RETURN,
TAB OR SHIFT-TAB! IF A STRINGGADGET IS INACTIVATED BY A MOUSECLICK, THE
CHANGE WILL NOT BE CARRIED OUT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ALL STRINGGADGETS IN THIS PROGRAM WILL HANDLE IT THIS WAY !!!!!!!!!!!!!
DELETE FILES
If you want to delete a file from the list, just select it, and click on
'Del'.
By clicking on 'ClrAll' you can delete all entries in the ListViewGadget.
There won't be any changes on disk when you delete an entry. Only the
items in the list will be affected.
SAVE INFO
ModPack offers you the possibility to save the info displayed on the
left as an ASCII-file. Click on 'Save' and a file requester will open.
Select or enter the filename and confirm it. Should the file already
exist, you can either overwrite it or append the new information. As a
third option you can cancel and not do anything.
(DONT'T) PAY ATTENTION TO COMMENT
With the CheckboxGadget you can define whether ModPack shall examine
the module's file comment or not. If the comment is not in the format
'COMPOSER^FROM^INFO' there might be some unwanted results which have
to be corrected manually. So you can switch this function off to ignore
the comment. Note that ignoring the comment can only be done while
selecting files. Once a file is in the list, switching on or off will
have no effect.
The default is 'COMMENT=TRUE' that makes the comment to be examined.
If you want to have it the other way round just from the start, set
'COMMENT=FALSE' in the ToolTypes. This would then be the predefined
setting when launched from the Workbench.
8 CHARACTER LIMIT
This has been implemented in order to save MS-DOS users from total
despair. I did see more than one BBS crashing because of too long file-
names. If activated the filenames of all Modules in the ListView will
be truncated to eight characters plus '.lha'. Making the option inactive
causes all filenames to be normal again :-)
This can also be controlled by the ToolTypes. Add 'CHARLIMIT=TRUE' to
activate it right from the start.
EXTERNAL ID
As the default file_id.diz-layout might surely not please everyone, I
added the possibility to use you own IDs. You have to set up two ASCII-
files, one for the 'full' ID and one for the 'empty' one. Add the Tool-
Types 'FILEIDFULL=File' (where 'File', of course, can be any valid path
to a file) and 'FILEIDEMPTY=File'. Only if those two entries are valid,
the CheckboxGadget will be enabled.
The File can be as long as you want it to be. To insert the RealName
you have to type '^R_$(xx)' where xx is a number indicating the length
of the string (shorter ones will be padded with SPACEs). The keyword
for the composer is '^C_$(xx)', for the From-entry '^F_$(xx)' and for
the Info-entry '^I(xx)'. so it could look like:
A MODULE...
======================================
RealName : ^R_$(20)
--------------------------------------
Author : ^C_$(30)
--------------------------------------
From : ^F_$(7)
--------------------------------------
Information : ^I_$(128)
This inserts a 20-bytes RealName string, a 30-bytes Composer string, a
7-bytes From string and a 128 bytes Info string.
The order must always be the same: first RealName, then Composer,
followed by From and Info.
The 'Empty' ID (without 'From' and 'Info' fields) lacks the ...well...
'From' and 'Info' fields. Surprising, isn't it ;-)
With the two ToolTypes present and(!) valid, the CheckboxGadget is auto-
matically enabled and activated. However, 'EXTERNALID=FALSE' overrides
that, and leaves the Gadget blank (but enabled). Note that you cannot
force the gadget to be enabled by 'EXTERNALID=TRUE' without having valid
ID-files.
THE LIST FILE
The ListFile keeps track of all files prcessed so far. It also prevents
name conflicts by renaming files that already exist. The ListFile can
only be activated by setting ToolType 'LISTFILE=File' (where 'File' can
be any file. If the specified file doesn't exist, ModPack creates it.
With a file present, ModPack reads all entries an stores them in memory.
Everytime a file is processed by LHA, ModPack checks its name and adds
it to the file.
If a name conflict occurs, ModPack renames the file to Filename_xx, where
xx is a hexadecimal serial number. In 8-character-mode the files are
renamed to Filenaxx. The name is cut off behind the sixth character and
the seriel number is appended. Of course you can edit the ListFile with
every text editor...
SELECT DESTINATION PATH
All modules, after they have been archived, will be stored in this
directory. The default path is 'RAM:'. Do you want another path, you can
either enter it manually or, by clicking onto the gadget to the left,
select the new path in a directory-reueqster. In addittion there is the
possibility to drop a drawer icon into the ModPack-window. The program
will take its path and put it into the StringGadget.
If there are some drawer icons within some file icons that are dragged
into the window, ModPack will take the path from them as well.
If you want to have another destinaion directory right after the start,
you have to change the ToolTypes. Example: 'DESTINATION=DH5:Upload/'
SELECT SOURCE PATH
This is the directory that is the default directory in the file requester
when you select files. It is always changed when you select a module in
a different directory. The default is 'Modules:'. If you don't have
this assign or volume, with the first file requester comes the nasty
'Please insert volume...' message. To prevent this you can set the source
directory in the ToolTypes to whatever you want. If you'd like
'DH1:Music/Modules/', type 'SOURCE=DH1:Music/Modules/'.
CHANGE PATTERN
When selecting files by file requester only those files will be shown
that either start witn 'mod.' or end with '.mod'. This can only be
changed in the requester itself and is then only valid once. To achieve
a constant change, change the ToolTypes. If you want that for example
files with the suffix '.xyz' shall be visible as well, write
'PATTERN=(mod.#?|#?.mod|#?.xyz)'
START ARCHIVING
After a click on 'Start' all modules will be archived one by one. ModPack
opens a CON:-window to show the output of LHA. In addition to the module
the ASCII-File 'file_id.diz' will be added, which contains information
about the module.
STOP ARCHIVING
To stop archiving, klick on the 'Stop!'-Gadget. After the current module
has finished, the process will be interrupted.
QUIT PROGRAM
To quit ModPack klick on the window's CloseGadget or the button labeled
'Quit'.
START FROM CLI
When launched from the CLI, the following presets will be activated:
Source : 'Modules:'
Destination: 'RAM:'
Comment : 'TRUE'
Pattern : '(mod.#?|#?.mod)'
CharLimit : 'FALSE'
ExternalID : 'FALSE' (disabled)
ListFile : (disabled)
Those presets are also valid if launched from the Workbench and there
are no ToolTypes.
----------------------------------------------------------------------------
BUGS
Perhaps there might be some layout problems with OS2.0. The appearance
of the ListViewGadgets has been changed from 2.0 to 3.0 an, so do I
believe, the reaction on the Height-parameter as well. I couldn't test
the program with Kick 2.0, so dear OS2.0 users, if there goes something
wrong, ask Commodore (or Samsung or whoever) why.
If there should be any more bugs, please contact me...
HISTORY
V0.xx before 12.08.1994 Inofficial beta-versions
V1.0a 12.08.1994 First public, fully operational release
Code length: 9408 bytes
Sourcecode : 52421 bytes / 2249 lines
V1.1a 13.08.1994 - Now supports ExtendedSelect on Workbench
- Colons, commas, full stops, slashes and
'_'s (those things, you know) will be
taken out of the filename
Code length: 9600 bytes
Sourcecode : 54067 bytes / 2304 lines
V1.4a 13.09.1994 - Eliminates question marks, inverted commas,
'#'s and '%'s (whatever they're called) in
the filename and converts '()' and '[]'
into '{}' (brackets like '(' or '[' confuse
LHA's parser...)
- Pressing the 'Add' button in the file
requester before having selected a file now
means to add all the files in the directory
- Option added to limit filenames to 8 chars
plus the '.lha' extension
- Reading only the first 19 Bytes as the
RealName (that's the ...well specification)
- Recognizing PowerPacked and Imploded files
and doesn't read any RealName but gives
them a number and marks them in the ListView
- Added a ListFile option to keep track of
processed files and to prevent name
conflicts
- Eliminated enforcer-hit that occured when
dropping icons into the window. ModPack is
now free of enforcer-hits ! (*)
- Added the possibility to use custom FileIDs
Code length: 12864 bytes
Sourcecode : 79181 bytes / 3174 lines
V1.4b 14.09.1994 - Cleaned up BSS-Hunk. Memory usage now 3172
bytes less than before
- The 'Save' and 'ClrAll' gadgets were
disabled after an extended select. Fixed now
- Module and ID file now archived in one pass.
CodeLength: 12848 bytes
Sourcecode: 79495 bytes / 3181 lines
(*) It wasn't so hard to find this bug although it occured in ROM. I just
debugged me through there and in a matter of minutes I found it. In order not
to make any effort, my MessagePort for the AppMessages was the same as for the
IntuiMessages. I waited with WaitPort() for something to happen and then
called GT_GetIMsg(). So far so good, but if an AppMsg comes in, it will be
processed by GetIMsg() as well. GetIMsg() does nothing but calling exec's
GetMsg() and processing the data by calling gadtools' GT_FilterIMsg(). But as
the structure of AppMessages and IntuiMessages differs, FilterIMsg() reads at
the wrong offsets. Now, after WaitPort() I check whether it's an AppMsg or not.
If it is, ModPack does only call exec's GetMsg() and ReplyMsg().
I just wanted to say this so that other programmers are able to fix that nasty
bug in advance...
THANKS
...go to Timo Henke who had the initial idea of ModPack and who came up
with a lot of suggestions and some icons.
ADDRESS
In general:
Mike Coenen
Kleestr. 10
D-31655 Stadthagen
Germany
Until about 01.08.1995:
Mike Coenen
Virchowstr. 5
D-31737 Rinteln
Germany